package com.second.app.paixu;

public class maopao {

    public static void main(String[] args) {
        int[] arr = {100,20, 10, 88, 99, 17};
        // 从小到大
        bubbleSort(arr);
        printArray(arr);

        // 从大到小
        int[] arr1 = {4, 20, 10, 88, 99, 17};
        bubbleSortDesc(arr1);
        printArray(arr1);
    }


    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - 1 - i; j++) {
                if (arr[j] > arr[j+1]) {
                    int tmp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }
    }
    public static void bubbleSortDesc(int[] arr) {
        int n = arr.length;
        boolean swapped; // 优化标记：是否发生交换
        for (int i = 0; i < n - 1; i++) {
            swapped = false;
            for (int j = 0; j < n - 1 - i; j++) {
                // 核心修改：当前元素 < 下一个元素时交换（实现从大到小）
                if (arr[j] < arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    swapped = true;
                }
            }
            // 若本轮无交换，说明数组已有序，提前退出
            if (!swapped) {
                break;
            }
        }
    }


    public static void printArray(int[] arr) {
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}
